﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Contract.Business.Entity;
using Contract.Business.Filter;
using Generic.Business.Process;
using Contract.Business.Manager;
using Contract.Business.Validation;

namespace Contract.Business.Process
{
    //Criado por : Gustavo
    //Data       : 10/25/2011 12:14:01 AM
    public class BPFuncionario : BPGeneric<BEFuncionario, BMFuncionario, BVFuncionario, FEFuncionario>
    {
        #region Singleton
        private BMSaidaChegada businessSaidaChegada;
        private BMSaidaChegada bmSaidaChegada
        {
            get
            {
                if (businessSaidaChegada == null)
                    businessSaidaChegada = new BMSaidaChegada();

                return businessSaidaChegada;
            }
        }
        #endregion

        public bool Logar(string usuario, string senha)
        {
            return BusinessManager.Logar(usuario, senha);
        }

        public void AlterarSenha(string usuario, string senhaAntiga, string novaSenha)
        {
            BusinessManager.AlterarSenha(usuario, senhaAntiga, novaSenha);
        }

        public override void Excluir(BEFuncionario entidade)
        {
            //if (bmSaidaChegada.ObterTodos(new FESaidaChegada() { CodigoMotoboy = entidade.Codigo }).Count > 0)
            //    throw new Exception("Não é possível excluir este motoboy pois ele já realizou alguma entrega.\nCaso deseja que ele não apareça na tela de Entrega de Pedido, basta Bloqueá-lo no cadastro de Funcionários.");
            //else
            //    base.Excluir(entidade);
            if (bmSaidaChegada.ObterTodos(new FESaidaChegada() { CodigoMotoboy = entidade.Codigo }).Count == 0)
                base.Excluir(entidade);
        }
    }
}
